home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 1
/
Cream of the Crop 1.iso
/
UTILITY
/
TASEXAM6.ARJ
/
SCAN1.TAS
< prev
next >
Wrap
Text File
|
1991-11-11
|
4KB
|
108 lines
{
SCRIPT : SCAN1.TAS
Screen for various conditions and create a report with
BUY/SELL Signals
x day price breakout
y day volume breakout
Stochastics buy/sell
RSI breakout
Author : Martin Moore
Date : 11/9/91
}
#MAX_QUOTES 100
#OUTPUT_FILE SCAN1.LST
{ SCAN Parameter settings follow.
These parameters can be changed to suit you
}
PRICE_BREAKOUT_PERIOD = 50; { Price breakout lookback period}
VOL_BREAKOUT_PERIOD = 30; { Volume breakout lookback period}
STOCH_PERIOD = 14; { Stoch %K period}
STOCH_SLOW = 3; { Stoch %D slowing}
RSI_PERIOD = 14; { RSI period}
VOL_PERCENT = 300; { Percentage for VOLUME BREAKOUT}
{ Declare various arrays to hold the results of indicators }
HHV_A : ARRAY; { Place to save HHV}
VOL_A : ARRAY; { Place to save Volume Moving average}
STK_A : ARRAY; { Place to save Stochastic %K}
STD_A : ARRAY; { Place to save Stochastic %D}
RSI_A : ARRAY; { Place to save RSI }
HHV_A = HHV(C,PRICE_BREAKOUT_PERIOD);
VOL_A = MOV(V,VOL_BREAKOUT_PERIOD,'S');
{ Use STOCH_PERIOD day stoch with 3 day slowing}
STK_A = STOCH(STOCH_PERIOD,3);
{ Compute %D as 3 day EMA of %K}
STD_A = MOV(STK_A,STOCH_SLOW,'E');
{ RSI_PERIOD Day RSI}
RSI_A = RSI(RSI_PERIOD);
PRICE_BREAKOUT = 0;
VOL_BREAKOUT = 0;
STOCH_BUY = 0;
STOCH_SELL = 0;
RSI_BUY = 0;
RSI_SELL = 0;
if CLOSE OF TODAY IS GREATER THAN HHV_A OF YESTERDAY THEN
begin
PRICE_BREAKOUT = 1;
end;
if VOLUME OF TODAY IS GREATER THAN
VOL_PERCENT/100 * VOL_A OF YESTERDAY THEN
begin
VOL_BREAKOUT = (VOLUME OF TODAY/VOL_A OF YESTERDAY) * 100;
end;
if STD_A OF YESTERDAY IS LESS THAN OR EQUAL TO 20 AND
STK_A OF YESTERDAY IS LESS THAN STD_A OF YESTERDAY AND
STK_A OF TODAY IS GREATER THAN STD_A OF TODAY THEN
begin
STOCH_BUY = 1;
end;
if STD_A OF YESTERDAY IS GREATER THAN OR EQUAL TO 80 AND
STK_A OF YESTERDAY IS GREATER THAN STD_A OF YESTERDAY AND
STK_A OF TODAY IS LESS THAN STD_A OF TODAY THEN
begin
STOCH_SELL = 1;
end;
if RSI_A of YESTERDAY IS LESS THAN OR EQUAL TO 30 AND
RSI_A OF TODAY IS GREATER THAN 30 THEN
begin
RSI_BUY = 1;
end;
if RSI_A of YESTERDAY IS GREATER THAN 70 and RSI_A of TODAY
IS LESS THAN 70 THEN
begin
RSI_SELL = 1;
end;
IF FIRST_TICKER THEN
begin
WRITELN(
' CURR PREV CURR STOCH '
);
WRITELN(
'TICKER NAME CLOSE CLOSE Vol % %K %D RSI'
);
WRITELN(
'------------------------ ------- ------- ------- ------- ------- -------'
);
end;
IF PRICE_BREAKOUT OR VOL_BREAKOUT OR STOCH_BUY OR STOCH_SELL OR
RSI_BUY OR RSI_SELL THEN
BEGIN
WRITELN(ticker,fullname,close, close of yesterday,
((volume/VOL_A[-1]))*100,'%%',stk_a,std_a,
RSI_A);
IF PRICE_BREAKOUT THEN
WRITELN('\t\t* PRICE BREAKOUT ABOVE ',
INT(PRICE_BREAKOUT_PERIOD), ' DAY HIGH OF CLOSE');
IF VOL_BREAKOUT THEN
WRITELN('\t\t* VOLUME BREAKOUT ',VOL_BREAKOUT,
' PERCENT OVER LAST',
INT(VOL_BREAKOUT_PERIOD), ' DAYS');
IF STOCH_BUY THEN
WRITELN('\t\t* STOCH BUY');
IF STOCH_SELL THEN
WRITELN('\t\t* STOCH SELL');
IF RSI_BUY THEN
WRITELN('\t\t* RSI BUY');
IF RSI_SELL THEN
WRITELN('\t\t* RSI SELL');
END;